home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The X-Philes (2nd Revision)
/
The X-Philes Number 1 (1995).iso
/
xphiles
/
hp48hor2
/
leastsq.src
< prev
next >
Wrap
Text File
|
1992-01-02
|
3KB
|
103 lines
%%HP:T(3)A(D)F(.);
@ LEASTSQ by Anthony K. Donno
DIR
LEAST
\<< DELEQ CL\GS \GS+ CLLCD 1 'XC' STO 2 'YC' STO 3 'ORDR' STO XYR
{ { "XCOL" {
\<< 'XC' STO DELEQ XYR
\>>
\<< 'XC' STO DELEQ XYR
\>>
\<< XC XYR
\>> } } { "YCOL" {
\<< 'YC' STO DELEQ XYR
\>>
\<< 'YC' STO DELEQ XYR
\>>
\<< YC XYR
\>> } } { "ORDER" {
\<< 'ORDR' STO DELEQ XYR
\>>
\<< 'ORDR' STO DELEQ XYR
\>>
\<< ORDR XYR
\>> } } { "PLOT"
\<<
IF 'EQ' VTYPE -1 ==
THEN SETRNG FIT
END
IF 'EQ' VTYPE 2 ==
THEN EQ 1 DISP 2 WAIT
ELSE FUNCTION PLOT GRAPH
END XYR
\>> } { "FIT"
\<<
IF 'EQ' VTYPE -1 ==
THEN FIT
END
IF 'EQ' VTYPE 2 ==
THEN EQ 1 DISP 2 WAIT
ELSE 'EQ' RCL
END XYR
\>> } { "EXIT"
\<< 0 MENU
\>> } } TMENU
\>>
PLOT
\<< ERASE \GSDAT SIZE OBJ\-> DROP DROP \-> d
\<< 1 d
FOR i \GSDAT i XC 2 \->LIST GET \GSDAT i YC 2 \->LIST GET R\->C C\->PX
PIXON
NEXT DRAX DRAW
\>>
\>>
FIT
\<< \GSDAT SIZE OBJ\-> DROP DROP \-> d
\<<
IF d ORDR >
THEN d ORDR 1 + 2 \->LIST 1 CON 2 ORDR 1 +
FOR i 1 d
FOR j j i 2 \->LIST \GSDAT j XC 2 \->LIST GET i 1 - ^ PUT
NEXT
NEXT 1 d
FOR i \GSDAT i YC 2 \->LIST GET
NEXT d 1 2 \->LIST \->ARRY SWAP DUP DUP TRN SWAP * INV SWAP TRN *
SWAP * OBJ\-> DROP ORDR POLY
ELSE "ERROR: Order > Points\010______________________"
END 'EQ' STO
\>>
\>>
POLY
\<< \-> d
\<< -3 CF 'X' d ^ * d 1 - 0
FOR d SWAP 'X' d ^ * + -1
STEP
\>>
\>>
SETRNG
\<< MAX\GS XC GET MAX\GS YC GET \-> xmax ymax
\<< MIN\GS XC GET MIN\GS YC GET \-> xmin ymin
\<< xmax xmin XRNG ymax ymin YRNG
\>>
\>>
\>>
XYR
\<< RCLF \-> flags
\<< -45 CF -46 CF -47 CF -48 CF -49 CF -50 CF "Xcol:" XC \->STR +
" Ycol:" + YC \->STR + " Order:" + ORDR \->STR +
"\010______________________" + 1 DISP 1 FREEZE flags STOF
\>>
\>>
DELEQ
\<<
IF 'EQ' VTYPE -1 \=/
THEN 'EQ' PURGE
END
\>>
CST { LEAST PLOT FIT { } { "PURGE"
\<< { EQ PPAR ORDR YC XC \GSDAT } PURGE
\>> } { "EXIT"
\<< HOME
\>> } }
END